ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ

キャッシュ・グループは、システム管理またはユーザー管理のいずれかになります。

READONLY、ASYNCHRONOUS WRITETHROUGHおよびSYNCHRONOUS WRITETHROUGHのキャッシュ・グループは、システム管理キャッシュ・グループです。

ローディングやアンローディングなど、システム管理のキャッシュ・グループはTimesTenによって管理されるため、これらのキャッシュ・グループでは次のような特定の文や句を使用できません。

また、AUTOREFRESH、REFRESHおよびFLUSHは、WRITETHROUGHキャッシュ・グループでは使用できません。READONLYキャッシュ・グループでは、AUTOREFRESHはデフォルトで有効になっています。

表レベルのREADONLYキーワードは、ユーザー管理キャッシュ・グループでのみ使用できます。

さらに、TimesTenとOracleの両方が、すべてのWHERE句を解析できる必要があります。

ASYNCHRONOUS WRITETHROUGHキャッシュ・グループは、レプリケーション・エージェントの実行中には作成できません。

アクセス制御

TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。

SQL構文

それぞれのタイプのキャッシュ・グループは、次のCREATE CACHE GROUP文で作成します。

CREATE READONLY CACHE GROUP

READONLYのキャッシュ・グループは、次の構文で作成します。

CREATE READONLY CACHE GROUP [Owner.]GroupName
  [AUTOREFRESH
     [MODE {INCREMENTAL [WITH LIMIT NumChanges] | FULL}]
     [INTERVAL IntervalValue {MINUTES | SECONDS | MILLISECONDS}]
     [STATE {ON|OFF|PAUSE}]
  ]
  FROM
    {[Owner.]TableName (
        {ColumnDefinition[,...]}
        [,PRIMARY KEY(ColumnName[,...])]
        [,FOREIGN KEY(ColumnName [,...])
            REFERENCES RefTableName (ColumnName [,...])
  [UNIQUE HASH ON (HashColumnName[,...]) PAGES=PrimaryPages]
  [WHERE ExternalSearchCondition]

} [,...];

CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP

ASYNCHRONOUS WRITETHROUGHのキャッシュ・グループは、次の構文で作成します。

CREATE [ASYNCHRONOUS] WRITETHROUGH CACHE GROUP   [Owner.]GroupName
  FROM
     {[Owner.]TableName (
       {ColumnDefinition[,...]}
      [,PRIMARY KEY(ColumnName[,...])]
        [FOREIGN KEY(ColumnName [,...])
              REFERENCES RefTableName (ColumnName [,...])]
  UNIQUE HASH ON (HashColumnName[,...]) PAGES=PrimaryPages]

} [,...];

CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP

SYNCHRONOUS WRITETHROUGHのキャッシュ・グループは、次の構文で作成します。

CREATE SYNCHRONOUS WRITETHROUGH
CACHE GROUP [Owner.]GroupName
  FROM
     {[Owner.]TableName (
         {ColumnDefinition[,...]}
        [,PRIMARY KEY(ColumnName[,...])]
          [FOREIGN KEY(ColumnName [,...])
                REFERENCES RefTableName (ColumnName [,...])}]
  [UNIQUE HASH ON (HashColumnName[,...]) PAGES=PrimaryPages]

} [,...];

CREATE USERMANAGED CACHE GROUP

ユーザー管理キャッシュ・グループは、次の構文で作成します。

CREATE [USERMANAGED] CACHE GROUP [Owner.]GroupName
  [DURATION DurationValue]
  [AUTOREFRESH
      [MODE {INCREMENTAL [WITH LIMIT NumChanges] | FULL}]
      [INTERVAL IntervalValue {MINUTES | SECONDS | MILLISECONDS}]
      [STATE {ON|OFF|PAUSED}]
  ]
  FROM
    {[Owner.]TableName (
       {ColumnDefinition[,...]}
        [,PRIMARY KEY(ColumnName[,...])]
        [FOREIGN KEY(ColumnName[,...])
              REFERENCES RefTableName (ColumnName [,...])]
        [, {READONLY | PROPAGATE | NOT PROPAGATE}]
  [UNIQUE HASH ON (HashColumnName[,...]) PAGES=PrimaryPages]
  [WHERE ExternalSearchCondition]

} [,...];

パラメータ

キャッシュ・グループの一般的な記述(FROMキーワードより前のすべての部分)のパラメータは、次のとおりです。

[Owner.]GroupName
新しいキャッシュ・グループに割り当てられる所有者および名前。
AUTOREFRESH

AUTOREFRESHパラメータは、OracleデータベースからTimesTenキャッシュ・グループに変更を自動的に伝播します。詳細は、「キャッシュ・グループのAUTOREFRESH」を参照してください。

DURATION DurationValue
DURATIONパラメータには、キャッシュ・インスタンスがエージングを実行する前にキャッシュにとどまる時間(分)を示す整数値を指定します。
MODE [INCREMENTAL | FULL]
自動リフレッシュ時に更新されるキャッシュ内の行を指定します。INCREMENTAL句が指定された場合、TimesTenは前回の伝播以降にOracleに加えられた変更のみをリフレッシュします。FULL句が指定された場合、TimesTenは自動リフレッシュのたびにキャッシュ内のすべての行を更新します。デフォルトのAUTOREFRESHモードはINCREMENTALです。
WITH LIMIT NumChanges

INCREMENTALモードで多数の完全自動リフレッシュが実行される場合に、AUTOREFRESH INCREMENTAL句でWITH LIMITを指定することによって、変更ログ表のサイズを変更できます。NumChangesの値を10,000から2,147,483,647に設定できます。デフォルト値は20,000です。

INTERVAL IntervalValue
自動リフレッシュを行う時間隔を分、秒またはミリ秒の単位で指定します。 IntervalValueには、AUTOREFRESHを実行する頻度をMINUTES、SECONDSまたはMILLISECONDSの単位の整数値で指定します。IntervalValueのデフォルト値は5分です。指定した時間隔でAUTOREFRESHを完了できない場合は、実行時に警告が生成され、現在の処理が終了するまで次回のAUTOREFRESHを待機します。待機キューが10に達すると、デーモン・ログに通知メッセージが生成されます。
STATE [ON | OFF | PAUSED]
キャッシュ・グループの作成時にAUTOREFRESHをON、OFFのいずれにするかを設定します。この設定は、ALTER CACHE GROUPコマンドを使用して後で変更できます。デフォルトでは、AUTOREFRESH STATEはPAUSEDです。
FROM
キャッシュ・グループに1つ以上の表定義を指定します。

FROMキーワード以降のすべての記述は、キャッシュ・グループがキャッシュするOracle表の定義から構成されています。各表定義の構文は、CREATE TABLE文と同様です。ただし、キャッシュ・グループ表には、主キー制約が必要です。

表定義には、次のパラメータがあります。

[Owner.]TableName
新しい表に割り当てる所有者と名前を指定します。所有者名を指定しない場合は、新しい表の所有者名としてログイン名が使用されます。
ColumnDefinition
表の個々の列の名前、データ型およびNULL値可能かどうかを指定します。各表には列が少なくとも1つ必要です。「列定義」を参照してください。
PRIMARY KEY (ColumnName[,...])
表に主キーを指定します。キャッシュ・グループには主キー制約が必須です。ColumnNameは表に対して作成する主キーになる列の名前です。主キーには最大16列を指定できます。1つの指定内でUNIQUEとともに指定することはできません。
FOREIGN KEY (ColumnName[,...])
表に外部キーを指定します。ColumnNameは、作成される表の外部キーとなる列の名前です。「FOREIGN KEY」を参照してください。
REFERENCES RefTableName (ColumnName[,...])
外部キーが関連付けられている表を指定します。RefTableNameは参照される表の名前で、ColumnNameは表の中で参照される列名です。
READONLY
キャッシュされた表に対する変更を許可しないように指定します。
PROPAGATE |
NOT PROPAGATE
キャッシュされた表への変更がコミットされたとき、対応するOracle表へ自動的に伝播されるかどうかを指定します。
UNIQUE HASH ON HashColumnName
この表にハッシュ索引を作成します。HashColumnNameには、この表のハッシュ・キーに含まれる列を指定します。ハッシュ索引に指定される列は、主キーの列と同じである必要があります。
PAGES=PrimaryPages
表の想定ページ数を指定します。PrimaryPagesの数値に基づいて、ハッシュ索引用に作成されるハッシュ・バケットの数が決まります。最小値は1、最大値は268,435,256です。想定したページ数が少なすぎると、パフォーマンスが低下します。詳細は、「CREATE TABLE」を参照してください。
WHERE ExternalSearchCondition
Oracleが評価するキャッシュ・グループ表のWHERE句。このWHERE句は、キャッシュ・グループに対するすべてのLOADとREFRESH処理に追加されます。他の表を直接参照することはできません。これはTimesTenおよびOracleの両方で解析されます。『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のWHERE句に関する項を参照してください。

説明